// 蜂窝蜜造平台生成代码，如手工更改，请添加到 .beeignore 忽略生成

package com.fowo.api.model.fine.use.voucher;

import com.fowo.api.common.annotaion.DataObjectType;
import com.fowo.api.common.meta.MetaDataObject;
import com.fowo.api.common.meta.MetaDataObjects;
import com.fowo.api.common.model.PageSearch;
import com.fowo.api.common.mybatis.helper.PageSearchHelper;
import com.fowo.api.common.util.ListUtils;
import com.fowo.api.entity.FineUseVoucher;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

@DataObjectType(FineUseVoucher.class)
@Setter
@Getter
public class FineUseVoucherSearchParamPo extends PageSearch {

  private static MetaDataObject metaDataObject;

  @Override
  public void applySqlSegments() {
    if (metaDataObject == null) {
      metaDataObject =
        ListUtils.find(
          MetaDataObjects.getObjects(),
          o -> "FineUseVoucher".equals(o.getName())
        );
    }
    PageSearchHelper.fillSqlSegments(this, metaDataObject);
  }

  @Override
  public void initFinal() {
    super.initFinal();
    applySqlSegments();
  }

  /**
   * 获取关联字段的查询表别名信息
   */
  @Override
  public Map<String, String> getJoinFieldTableAliasMap() {
    Map<String, String> map = new HashMap<>();
    return map;
  }

  @Override
  public Map<String, OptionalJoinField> getOptionalJoinFields() {
    Map<String, OptionalJoinField> map = new HashMap<>();

    return map;
  }

  /**
   * 编号
   */
  private Long id;

  /**
   * 最小编号
   */
  private Long idMin;

  /**
   * 最大编号
   */
  private Long idMax;

  /**
   * 编号 比较(eq)
   */
  private Long idEq;
  /**
   * 编号 比较(neq)
   */
  private Long idNeq;
  /**
   * 编号 比较(gt)
   */
  private Long idGt;
  /**
   * 编号 比较(gte)
   */
  private Long idGte;
  /**
   * 编号 比较(lt)
   */
  private Long idLt;
  /**
   * 编号 比较(lte)
   */
  private Long idLte;
  /**
   * 编号 比较(contains)
   */
  private Long idContains;
  /**
   * 编号 比较(notcontains)
   */
  private Long idNotcontains;
  /**
   * 编号 比较(startswith)
   */
  private Long idStartswith;
  /**
   * 编号 比较(endswith)
   */
  private Long idEndswith;
  /**
   * 编号 比较(isnull)
   */
  private Boolean idIsnull;
  /**
   * 编号 比较(isnotnull)
   */
  private Boolean idIsnotnull;

  /**
   * 借方店铺(模糊搜索)
   */
  private String shop;

  /**
   * 借方店铺 比较(eq)
   */
  private String shopEq;
  /**
   * 借方店铺 比较(neq)
   */
  private String shopNeq;
  /**
   * 借方店铺 比较(gt)
   */
  private String shopGt;
  /**
   * 借方店铺 比较(gte)
   */
  private String shopGte;
  /**
   * 借方店铺 比较(lt)
   */
  private String shopLt;
  /**
   * 借方店铺 比较(lte)
   */
  private String shopLte;
  /**
   * 借方店铺 比较(contains)
   */
  private String shopContains;
  /**
   * 借方店铺 比较(notcontains)
   */
  private String shopNotcontains;
  /**
   * 借方店铺 比较(startswith)
   */
  private String shopStartswith;
  /**
   * 借方店铺 比较(endswith)
   */
  private String shopEndswith;
  /**
   * 借方店铺 比较(isnull)
   */
  private Boolean shopIsnull;
  /**
   * 借方店铺 比较(isnotnull)
   */
  private Boolean shopIsnotnull;

  /**
   * 借方店铺(精确搜索)
   */
  private List<String> shopInList;

  /**
   * 金额
   */
  private java.math.BigDecimal money;

  /**
   * 最小金额
   */
  private java.math.BigDecimal moneyMin;

  /**
   * 最大金额
   */
  private java.math.BigDecimal moneyMax;

  /**
   * 金额 比较(eq)
   */
  private java.math.BigDecimal moneyEq;
  /**
   * 金额 比较(neq)
   */
  private java.math.BigDecimal moneyNeq;
  /**
   * 金额 比较(gt)
   */
  private java.math.BigDecimal moneyGt;
  /**
   * 金额 比较(gte)
   */
  private java.math.BigDecimal moneyGte;
  /**
   * 金额 比较(lt)
   */
  private java.math.BigDecimal moneyLt;
  /**
   * 金额 比较(lte)
   */
  private java.math.BigDecimal moneyLte;
  /**
   * 金额 比较(contains)
   */
  private java.math.BigDecimal moneyContains;
  /**
   * 金额 比较(notcontains)
   */
  private java.math.BigDecimal moneyNotcontains;
  /**
   * 金额 比较(startswith)
   */
  private java.math.BigDecimal moneyStartswith;
  /**
   * 金额 比较(endswith)
   */
  private java.math.BigDecimal moneyEndswith;
  /**
   * 金额 比较(isnull)
   */
  private Boolean moneyIsnull;
  /**
   * 金额 比较(isnotnull)
   */
  private Boolean moneyIsnotnull;

  /**
   * 借方事业部(模糊搜索)
   */
  private String division;

  /**
   * 借方事业部 比较(eq)
   */
  private String divisionEq;
  /**
   * 借方事业部 比较(neq)
   */
  private String divisionNeq;
  /**
   * 借方事业部 比较(gt)
   */
  private String divisionGt;
  /**
   * 借方事业部 比较(gte)
   */
  private String divisionGte;
  /**
   * 借方事业部 比较(lt)
   */
  private String divisionLt;
  /**
   * 借方事业部 比较(lte)
   */
  private String divisionLte;
  /**
   * 借方事业部 比较(contains)
   */
  private String divisionContains;
  /**
   * 借方事业部 比较(notcontains)
   */
  private String divisionNotcontains;
  /**
   * 借方事业部 比较(startswith)
   */
  private String divisionStartswith;
  /**
   * 借方事业部 比较(endswith)
   */
  private String divisionEndswith;
  /**
   * 借方事业部 比较(isnull)
   */
  private Boolean divisionIsnull;
  /**
   * 借方事业部 比较(isnotnull)
   */
  private Boolean divisionIsnotnull;

  /**
   * 借方事业部(精确搜索)
   */
  private List<String> divisionInList;

  /**
   * 借方部门(模糊搜索)
   */
  private String department;

  /**
   * 借方部门 比较(eq)
   */
  private String departmentEq;
  /**
   * 借方部门 比较(neq)
   */
  private String departmentNeq;
  /**
   * 借方部门 比较(gt)
   */
  private String departmentGt;
  /**
   * 借方部门 比较(gte)
   */
  private String departmentGte;
  /**
   * 借方部门 比较(lt)
   */
  private String departmentLt;
  /**
   * 借方部门 比较(lte)
   */
  private String departmentLte;
  /**
   * 借方部门 比较(contains)
   */
  private String departmentContains;
  /**
   * 借方部门 比较(notcontains)
   */
  private String departmentNotcontains;
  /**
   * 借方部门 比较(startswith)
   */
  private String departmentStartswith;
  /**
   * 借方部门 比较(endswith)
   */
  private String departmentEndswith;
  /**
   * 借方部门 比较(isnull)
   */
  private Boolean departmentIsnull;
  /**
   * 借方部门 比较(isnotnull)
   */
  private Boolean departmentIsnotnull;

  /**
   * 借方部门(精确搜索)
   */
  private List<String> departmentInList;

  /**
   * 最早创建时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date createTimeStart;

  /**
   * 最晚创建时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date createTimeEnd;

  /**
   * 创建时间 比较(eq)
   */
  private Date createTimeEq;
  /**
   * 创建时间 比较(neq)
   */
  private Date createTimeNeq;
  /**
   * 创建时间 比较(gt)
   */
  private Date createTimeGt;
  /**
   * 创建时间 比较(gte)
   */
  private Date createTimeGte;
  /**
   * 创建时间 比较(lt)
   */
  private Date createTimeLt;
  /**
   * 创建时间 比较(lte)
   */
  private Date createTimeLte;
  /**
   * 创建时间 比较(contains)
   */
  private Date createTimeContains;
  /**
   * 创建时间 比较(notcontains)
   */
  private Date createTimeNotcontains;
  /**
   * 创建时间 比较(startswith)
   */
  private Date createTimeStartswith;
  /**
   * 创建时间 比较(endswith)
   */
  private Date createTimeEndswith;
  /**
   * 创建时间 比较(isnull)
   */
  private Boolean createTimeIsnull;
  /**
   * 创建时间 比较(isnotnull)
   */
  private Boolean createTimeIsnotnull;

  /**
   * 创建人
   */
  private Long createUser;

  /**
   * 最小创建人
   */
  private Long createUserMin;

  /**
   * 最大创建人
   */
  private Long createUserMax;

  /**
   * 创建人 比较(eq)
   */
  private Long createUserEq;
  /**
   * 创建人 比较(neq)
   */
  private Long createUserNeq;
  /**
   * 创建人 比较(gt)
   */
  private Long createUserGt;
  /**
   * 创建人 比较(gte)
   */
  private Long createUserGte;
  /**
   * 创建人 比较(lt)
   */
  private Long createUserLt;
  /**
   * 创建人 比较(lte)
   */
  private Long createUserLte;
  /**
   * 创建人 比较(contains)
   */
  private Long createUserContains;
  /**
   * 创建人 比较(notcontains)
   */
  private Long createUserNotcontains;
  /**
   * 创建人 比较(startswith)
   */
  private Long createUserStartswith;
  /**
   * 创建人 比较(endswith)
   */
  private Long createUserEndswith;
  /**
   * 创建人 比较(isnull)
   */
  private Boolean createUserIsnull;
  /**
   * 创建人 比较(isnotnull)
   */
  private Boolean createUserIsnotnull;

  /**
   * 最早更新时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date lastUpdateTimeStart;

  /**
   * 最晚更新时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date lastUpdateTimeEnd;

  /**
   * 更新时间 比较(eq)
   */
  private Date lastUpdateTimeEq;
  /**
   * 更新时间 比较(neq)
   */
  private Date lastUpdateTimeNeq;
  /**
   * 更新时间 比较(gt)
   */
  private Date lastUpdateTimeGt;
  /**
   * 更新时间 比较(gte)
   */
  private Date lastUpdateTimeGte;
  /**
   * 更新时间 比较(lt)
   */
  private Date lastUpdateTimeLt;
  /**
   * 更新时间 比较(lte)
   */
  private Date lastUpdateTimeLte;
  /**
   * 更新时间 比较(contains)
   */
  private Date lastUpdateTimeContains;
  /**
   * 更新时间 比较(notcontains)
   */
  private Date lastUpdateTimeNotcontains;
  /**
   * 更新时间 比较(startswith)
   */
  private Date lastUpdateTimeStartswith;
  /**
   * 更新时间 比较(endswith)
   */
  private Date lastUpdateTimeEndswith;
  /**
   * 更新时间 比较(isnull)
   */
  private Boolean lastUpdateTimeIsnull;
  /**
   * 更新时间 比较(isnotnull)
   */
  private Boolean lastUpdateTimeIsnotnull;

  /**
   * 更新人
   */
  private Long lastUpdateUser;

  /**
   * 最小更新人
   */
  private Long lastUpdateUserMin;

  /**
   * 最大更新人
   */
  private Long lastUpdateUserMax;

  /**
   * 更新人 比较(eq)
   */
  private Long lastUpdateUserEq;
  /**
   * 更新人 比较(neq)
   */
  private Long lastUpdateUserNeq;
  /**
   * 更新人 比较(gt)
   */
  private Long lastUpdateUserGt;
  /**
   * 更新人 比较(gte)
   */
  private Long lastUpdateUserGte;
  /**
   * 更新人 比较(lt)
   */
  private Long lastUpdateUserLt;
  /**
   * 更新人 比较(lte)
   */
  private Long lastUpdateUserLte;
  /**
   * 更新人 比较(contains)
   */
  private Long lastUpdateUserContains;
  /**
   * 更新人 比较(notcontains)
   */
  private Long lastUpdateUserNotcontains;
  /**
   * 更新人 比较(startswith)
   */
  private Long lastUpdateUserStartswith;
  /**
   * 更新人 比较(endswith)
   */
  private Long lastUpdateUserEndswith;
  /**
   * 更新人 比较(isnull)
   */
  private Boolean lastUpdateUserIsnull;
  /**
   * 更新人 比较(isnotnull)
   */
  private Boolean lastUpdateUserIsnotnull;

  /**
   * 日期(模糊搜索)
   */
  private String jsDate;

  /**
   * 日期 比较(eq)
   */
  private String jsDateEq;
  /**
   * 日期 比较(neq)
   */
  private String jsDateNeq;
  /**
   * 日期 比较(gt)
   */
  private String jsDateGt;
  /**
   * 日期 比较(gte)
   */
  private String jsDateGte;
  /**
   * 日期 比较(lt)
   */
  private String jsDateLt;
  /**
   * 日期 比较(lte)
   */
  private String jsDateLte;
  /**
   * 日期 比较(contains)
   */
  private String jsDateContains;
  /**
   * 日期 比较(notcontains)
   */
  private String jsDateNotcontains;
  /**
   * 日期 比较(startswith)
   */
  private String jsDateStartswith;
  /**
   * 日期 比较(endswith)
   */
  private String jsDateEndswith;
  /**
   * 日期 比较(isnull)
   */
  private Boolean jsDateIsnull;
  /**
   * 日期 比较(isnotnull)
   */
  private Boolean jsDateIsnotnull;

  /**
   * 日期(精确搜索)
   */
  private List<String> jsDateInList;

  /**
   * 是否推送
   */
  private String isPublish;

  /**
   * 是否推送 比较(eq)
   */
  private String isPublishEq;
  /**
   * 是否推送 比较(neq)
   */
  private String isPublishNeq;
  /**
   * 是否推送 比较(gt)
   */
  private String isPublishGt;
  /**
   * 是否推送 比较(gte)
   */
  private String isPublishGte;
  /**
   * 是否推送 比较(lt)
   */
  private String isPublishLt;
  /**
   * 是否推送 比较(lte)
   */
  private String isPublishLte;
  /**
   * 是否推送 比较(contains)
   */
  private String isPublishContains;
  /**
   * 是否推送 比较(notcontains)
   */
  private String isPublishNotcontains;
  /**
   * 是否推送 比较(startswith)
   */
  private String isPublishStartswith;
  /**
   * 是否推送 比较(endswith)
   */
  private String isPublishEndswith;
  /**
   * 是否推送 比较(isnull)
   */
  private Boolean isPublishIsnull;
  /**
   * 是否推送 比较(isnotnull)
   */
  private Boolean isPublishIsnotnull;

  /**
   * 是否推送(精确搜索)
   */
  private List<String> isPublishInList;

  /**
   * 币种(模糊搜索)
   */
  private String currency;

  /**
   * 币种 比较(eq)
   */
  private String currencyEq;
  /**
   * 币种 比较(neq)
   */
  private String currencyNeq;
  /**
   * 币种 比较(gt)
   */
  private String currencyGt;
  /**
   * 币种 比较(gte)
   */
  private String currencyGte;
  /**
   * 币种 比较(lt)
   */
  private String currencyLt;
  /**
   * 币种 比较(lte)
   */
  private String currencyLte;
  /**
   * 币种 比较(contains)
   */
  private String currencyContains;
  /**
   * 币种 比较(notcontains)
   */
  private String currencyNotcontains;
  /**
   * 币种 比较(startswith)
   */
  private String currencyStartswith;
  /**
   * 币种 比较(endswith)
   */
  private String currencyEndswith;
  /**
   * 币种 比较(isnull)
   */
  private Boolean currencyIsnull;
  /**
   * 币种 比较(isnotnull)
   */
  private Boolean currencyIsnotnull;

  /**
   * 币种(精确搜索)
   */
  private List<String> currencyInList;

  /**
   * 借方科目编号(模糊搜索)
   */
  private String fdebitAccountCode;

  /**
   * 借方科目编号 比较(eq)
   */
  private String fdebitAccountCodeEq;
  /**
   * 借方科目编号 比较(neq)
   */
  private String fdebitAccountCodeNeq;
  /**
   * 借方科目编号 比较(gt)
   */
  private String fdebitAccountCodeGt;
  /**
   * 借方科目编号 比较(gte)
   */
  private String fdebitAccountCodeGte;
  /**
   * 借方科目编号 比较(lt)
   */
  private String fdebitAccountCodeLt;
  /**
   * 借方科目编号 比较(lte)
   */
  private String fdebitAccountCodeLte;
  /**
   * 借方科目编号 比较(contains)
   */
  private String fdebitAccountCodeContains;
  /**
   * 借方科目编号 比较(notcontains)
   */
  private String fdebitAccountCodeNotcontains;
  /**
   * 借方科目编号 比较(startswith)
   */
  private String fdebitAccountCodeStartswith;
  /**
   * 借方科目编号 比较(endswith)
   */
  private String fdebitAccountCodeEndswith;
  /**
   * 借方科目编号 比较(isnull)
   */
  private Boolean fdebitAccountCodeIsnull;
  /**
   * 借方科目编号 比较(isnotnull)
   */
  private Boolean fdebitAccountCodeIsnotnull;

  /**
   * 借方科目编号(精确搜索)
   */
  private List<String> fdebitAccountCodeInList;

  /**
   * 贷方科目编号(模糊搜索)
   */
  private String fcreditAccountCode;

  /**
   * 贷方科目编号 比较(eq)
   */
  private String fcreditAccountCodeEq;
  /**
   * 贷方科目编号 比较(neq)
   */
  private String fcreditAccountCodeNeq;
  /**
   * 贷方科目编号 比较(gt)
   */
  private String fcreditAccountCodeGt;
  /**
   * 贷方科目编号 比较(gte)
   */
  private String fcreditAccountCodeGte;
  /**
   * 贷方科目编号 比较(lt)
   */
  private String fcreditAccountCodeLt;
  /**
   * 贷方科目编号 比较(lte)
   */
  private String fcreditAccountCodeLte;
  /**
   * 贷方科目编号 比较(contains)
   */
  private String fcreditAccountCodeContains;
  /**
   * 贷方科目编号 比较(notcontains)
   */
  private String fcreditAccountCodeNotcontains;
  /**
   * 贷方科目编号 比较(startswith)
   */
  private String fcreditAccountCodeStartswith;
  /**
   * 贷方科目编号 比较(endswith)
   */
  private String fcreditAccountCodeEndswith;
  /**
   * 贷方科目编号 比较(isnull)
   */
  private Boolean fcreditAccountCodeIsnull;
  /**
   * 贷方科目编号 比较(isnotnull)
   */
  private Boolean fcreditAccountCodeIsnotnull;

  /**
   * 贷方科目编号(精确搜索)
   */
  private List<String> fcreditAccountCodeInList;

  /**
   * 贷方供应商(模糊搜索)
   */
  private String dsupplier;

  /**
   * 贷方供应商 比较(eq)
   */
  private String dsupplierEq;
  /**
   * 贷方供应商 比较(neq)
   */
  private String dsupplierNeq;
  /**
   * 贷方供应商 比较(gt)
   */
  private String dsupplierGt;
  /**
   * 贷方供应商 比较(gte)
   */
  private String dsupplierGte;
  /**
   * 贷方供应商 比较(lt)
   */
  private String dsupplierLt;
  /**
   * 贷方供应商 比较(lte)
   */
  private String dsupplierLte;
  /**
   * 贷方供应商 比较(contains)
   */
  private String dsupplierContains;
  /**
   * 贷方供应商 比较(notcontains)
   */
  private String dsupplierNotcontains;
  /**
   * 贷方供应商 比较(startswith)
   */
  private String dsupplierStartswith;
  /**
   * 贷方供应商 比较(endswith)
   */
  private String dsupplierEndswith;
  /**
   * 贷方供应商 比较(isnull)
   */
  private Boolean dsupplierIsnull;
  /**
   * 贷方供应商 比较(isnotnull)
   */
  private Boolean dsupplierIsnotnull;

  /**
   * 贷方供应商(精确搜索)
   */
  private List<String> dsupplierInList;

  /**
   * 贷方客户(模糊搜索)
   */
  private String dcustom;

  /**
   * 贷方客户 比较(eq)
   */
  private String dcustomEq;
  /**
   * 贷方客户 比较(neq)
   */
  private String dcustomNeq;
  /**
   * 贷方客户 比较(gt)
   */
  private String dcustomGt;
  /**
   * 贷方客户 比较(gte)
   */
  private String dcustomGte;
  /**
   * 贷方客户 比较(lt)
   */
  private String dcustomLt;
  /**
   * 贷方客户 比较(lte)
   */
  private String dcustomLte;
  /**
   * 贷方客户 比较(contains)
   */
  private String dcustomContains;
  /**
   * 贷方客户 比较(notcontains)
   */
  private String dcustomNotcontains;
  /**
   * 贷方客户 比较(startswith)
   */
  private String dcustomStartswith;
  /**
   * 贷方客户 比较(endswith)
   */
  private String dcustomEndswith;
  /**
   * 贷方客户 比较(isnull)
   */
  private Boolean dcustomIsnull;
  /**
   * 贷方客户 比较(isnotnull)
   */
  private Boolean dcustomIsnotnull;

  /**
   * 贷方客户(精确搜索)
   */
  private List<String> dcustomInList;

  /**
   * 贷方员工(模糊搜索)
   */
  private String dstaff;

  /**
   * 贷方员工 比较(eq)
   */
  private String dstaffEq;
  /**
   * 贷方员工 比较(neq)
   */
  private String dstaffNeq;
  /**
   * 贷方员工 比较(gt)
   */
  private String dstaffGt;
  /**
   * 贷方员工 比较(gte)
   */
  private String dstaffGte;
  /**
   * 贷方员工 比较(lt)
   */
  private String dstaffLt;
  /**
   * 贷方员工 比较(lte)
   */
  private String dstaffLte;
  /**
   * 贷方员工 比较(contains)
   */
  private String dstaffContains;
  /**
   * 贷方员工 比较(notcontains)
   */
  private String dstaffNotcontains;
  /**
   * 贷方员工 比较(startswith)
   */
  private String dstaffStartswith;
  /**
   * 贷方员工 比较(endswith)
   */
  private String dstaffEndswith;
  /**
   * 贷方员工 比较(isnull)
   */
  private Boolean dstaffIsnull;
  /**
   * 贷方员工 比较(isnotnull)
   */
  private Boolean dstaffIsnotnull;

  /**
   * 贷方员工(精确搜索)
   */
  private List<String> dstaffInList;

  /**
   * 贷方物流商(模糊搜索)
   */
  private String dlogistics;

  /**
   * 贷方物流商 比较(eq)
   */
  private String dlogisticsEq;
  /**
   * 贷方物流商 比较(neq)
   */
  private String dlogisticsNeq;
  /**
   * 贷方物流商 比较(gt)
   */
  private String dlogisticsGt;
  /**
   * 贷方物流商 比较(gte)
   */
  private String dlogisticsGte;
  /**
   * 贷方物流商 比较(lt)
   */
  private String dlogisticsLt;
  /**
   * 贷方物流商 比较(lte)
   */
  private String dlogisticsLte;
  /**
   * 贷方物流商 比较(contains)
   */
  private String dlogisticsContains;
  /**
   * 贷方物流商 比较(notcontains)
   */
  private String dlogisticsNotcontains;
  /**
   * 贷方物流商 比较(startswith)
   */
  private String dlogisticsStartswith;
  /**
   * 贷方物流商 比较(endswith)
   */
  private String dlogisticsEndswith;
  /**
   * 贷方物流商 比较(isnull)
   */
  private Boolean dlogisticsIsnull;
  /**
   * 贷方物流商 比较(isnotnull)
   */
  private Boolean dlogisticsIsnotnull;

  /**
   * 贷方物流商(精确搜索)
   */
  private List<String> dlogisticsInList;

  /**
   * 表单名称
   */
  private String formName;

  /**
   * 工作流状态
   */
  private Integer wfStatus;
}
